package cn.cs.yangtai.service;

import cn.cs.yangtai.entity.Comminicate;
import cn.cs.yangtai.entity.Commodity;
import cn.cs.yangtai.entity.vo.CommodityVo;
import cn.cs.yangtai.entity.vo.PageResult;

import java.util.List;

/**
 * 商品表(Commodity)表服务接口
 *
 * @author makejava
 * @since 2024-12-17 13:50:54
 */
public interface CommodityService {

    /**
     * 通过ID查询单条数据
     *
     * @param cId 主键
     * @return 实例对象
     */
    CommodityVo queryById(Integer cId);

    /**
     * 查询销量排行前10的商品
     *
     * @return 商品列表
     */
    List<CommodityVo> findTop10BySales();

    /**
     * 查询距离当前时间最近的商品
     *
     * @return 商品列表
     */
    List<CommodityVo> findRecentCommodities();


    /**
     * 分页查询
     *
     * @param cuttentPage 本页
     * @param pageSize    分页大小
     * @return 查询结果
     */
    PageResult<CommodityVo> queryByPage(Integer cuttentPage, Integer pageSize);

    /**
     * 新增数据
     *
     * @param commodity 实例对象
     * @return 实例对象
     */
    Commodity insert(Commodity commodity);
    /**
     * 检查商品名称是否已存在
     *
     * @param name 商品名称
     * @return true 如果名称存在，否则 false
     */
    boolean isCommodityNameExists(String name);


    /**
     * 修改数据
     *
     * @param commodity 实例对象
     * @return 实例对象
     */
    Commodity update(Commodity commodity);

    /**
     * 通过主键删除数据
     *
     * @param cId 主键
     * @return 是否成功
     */
    boolean deleteById(Integer cId);

}
